/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package administrador;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author DanielSilva
 */
public class Datawarehouse {

    public Datawarehouse() {
        procesaMigracion();
    }

    public void procesaMigracion() {
        //Establesco la comunicacion con las dos bases de datos:

        String IPCliente = "localhost";// 
        String nombre = "msig";//"daniel1";
        String password = "msig";
        String dbcliente = "dwhsexylocuras";
        String puerto = "3306";

        //Realizo la conexion a la base de datos Antigua cliente:
        Conexion conexionAntigua = new Conexion();
        if (!conexionAntigua.conectarBase(nombre, password, puerto, dbcliente, IPCliente)) {
           //System.out.println("No pudo establecer la conexion primera");

        } else {
           //System.out.println("Conexion exitosa base antigua");
        }




        //Realizo la conexion a la base de datos Nueva cliente:

        IPCliente = "localhost";// 
        nombre = "daniel1";//"daniel1";
        password = "yxes1984";
        dbcliente = "sexylocuras_mysql4608ff1c2ef2554b21b127617fc4e569";
        puerto = "3306";

        //Realizo la conexion a la base de datos Antigua cliente:
        Conexion conexionNueva = new Conexion();
        if (!conexionNueva.conectarBase(nombre, password, puerto, dbcliente, IPCliente)) {
           //System.out.println("No pudo establecer la conexion primera");

        } else {
           //System.out.println("Conexion exitosa base antigua");
        }


        //Realizo la migracion de Detalles de usuario final:
        ResultSet datosantiguos = conexionAntigua.consultarBase("select p.* from pedido p, cliente c where c.cod_cliente like p.cod_cliente and p.cod_cliente like '1' and cod_pedido>30683;");
        String txterr="";
        try {
            datosantiguos.beforeFirst();
            
            while (datosantiguos.next()) {
                
                //Valido de que no exista : el codigo de pedido
                ResultSet resSet=conexionNueva.consultarBase("select * from pedido where cod_pedido="+datosantiguos.getInt(1)+" ;");
                if(conexionNueva.obtenerFilas(resSet)>0){
                    
                    txterr="Error en el pedido no"+datosantiguos.getInt(1)+"  esta se repite.";
                 
                }
                
                
                //Saco datos e inserto:
               //System.out.println("La insercion es:"+"insert into pedido values("+datosantiguos.getInt(1) +",'"+datosantiguos.getString(2)+"','"+datosantiguos.getString(3)+"','"+datosantiguos.getDate(4)+"','Cuenca','Ecuador','Azuay','"+datosantiguos.getString(8)+"','"+datosantiguos.getString(9)+"',"+datosantiguos.getDouble(10)+","+datosantiguos.getDouble(11)+","+datosantiguos.getDouble(12)+","+datosantiguos.getDouble(13)+",'A',null,'','F','"+datosantiguos.getString(18)+"','"+datosantiguos.getString(19)+"',"+datosantiguos.getLong(20)+","+datosantiguos.getDouble(21)+",'"+datosantiguos.getString(22)+"')");
                
                String insertTxt="insert into pedido values("+datosantiguos.getInt(1) +",'"+datosantiguos.getString(2)+"','"+datosantiguos.getString(3)+"','"+datosantiguos.getDate(4)+"','Cuenca','Ecuador','Azuay','"+datosantiguos.getString(8)+"','"+datosantiguos.getString(9)+"',"+datosantiguos.getDouble(10)+","+datosantiguos.getDouble(11)+","+datosantiguos.getDouble(12)+","+datosantiguos.getDouble(13)+",'A',null,'','F','"+datosantiguos.getString(18)+"','"+datosantiguos.getString(19)+"',"+datosantiguos.getLong(20)+","+datosantiguos.getDouble(21)+",'"+datosantiguos.getString(22)+"')";
                
                if(conexionNueva.insertarDatosR(insertTxt)){
                }else{
                    System.err.println("No se inserto correctamente pedido:"+datosantiguos.getInt(1));
                    txterr=txterr+"No se inserto correctamente pedido:"+datosantiguos.getInt(1)+"\n";
                };
                
                
            }
        } catch (SQLException ex) {
            Logger.getLogger(Migracionbasedatos.class.getName()).log(Level.SEVERE, null, ex);
        }
       //System.out.println("error" + txterr);




        
        
        
        
        
        
        
        
        
        
        //Realizo la migracion de pedidos de usuario final:
        datosantiguos = conexionAntigua.consultarBase("select d.* from pedido p,dtl_pedido d, cliente c where c.cod_cliente like p.cod_cliente and c.cod_cliente like '1' and p.cod_pedido=d.cod_pedido and d.cod_pedido>16681;");
        txterr=txterr+"Error MIgrar Detalle:";
        try {
            datosantiguos.beforeFirst();
            while (datosantiguos.next()) {
                
                
                //Saco datos e inserto:
                String insertTxt="insert into dtl_pedido values("+datosantiguos.getInt(1)+",'"+datosantiguos.getString(2)/*Codigo*/+"',"+datosantiguos.getInt(3)/*Cantidad*/+","+datosantiguos.getDouble(4)/*Subtotal*/+",'F','"+datosantiguos.getString(6)+"',"+datosantiguos.getDouble(7)+")";
                
                if(conexionNueva.insertarDatosR(insertTxt)){
                }else{
                    System.err.println("No se inserto correctamente pedido:"+datosantiguos.getInt(1));
                    txterr=txterr+"No se inserto correctamente pedido:"+datosantiguos.getInt(1)+"\n";
                };
                
                
            }
        } catch (SQLException ex) {
            Logger.getLogger(Migracionbasedatos.class.getName()).log(Level.SEVERE, null, ex);
        }
       //System.out.println("error" + txterr);




        try {
            //cierro las conexiones:
            conexionAntigua.cerrarConexion();
            conexionNueva.cerrarConexion();
        } catch (Exception ex) {
            Logger.getLogger(Migracionbasedatos.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
        
        
        
        

    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Datawarehouse();
            }
        });
    }
}
